package com.briup.day25;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Test_ReverServe {
    public static void main01(String[] args) {
        StringBuffer sb = new StringBuffer("hello");
        sb.reverse();
        System.out.println(sb);
        sb.delete(0, sb.length());
        System.out.println(sb);
    }
    public static void main(String[] args) throws IOException {


        /*
        * 1.客户端从键盘录入一行数据 发生给服务器端
        * 2.服务器端接受都爱这行数据（逐行读取） 反转数据
        * 3.返回给客户端
        * */
//        1.创建服务器对象
        ServerSocket server = new ServerSocket(8889);
        System.out.println("服务器启动成功....");
//        2.使用accept接受客户端通信
//        因为我一开始是在接受客户端的连接，
        Socket socket = server.accept();
//        3.创建IO流
        InputStream is = socket.getInputStream();//然后接受过来后，获取他的内容，但是这些内容都是字节形式的
        BufferedReader bis = new BufferedReader(new InputStreamReader(is));
        OutputStream os = socket.getOutputStream();
        PrintStream ps = new PrintStream(os);
//        4.读取从客户端发生数据 反转后再客户端发送
        while (true) {
            //逐行读取
            String line = bis.readLine();
            System.out.println("读取成功: " + line);
            if ("quit".equals(line)) {
                System.out.println("连接结束");
                break;
            }
            StringBuffer sb = new StringBuffer(line);
            sb.reverse();
            System.out.println("反转后: " + sb);
            ps.println(sb.toString());//因为 PrintStream内部自动帮你完成了字符→字节的转换！
            System.out.println("发生完成");
        }
//            5.释放资源
            ps.close();
            bis.close();
            socket.close();
            server.close();
        }
}
